package main.model.critters.eventprocessor;

import java.util.ArrayList;

import main.model.critters.Critter;
import main.model.critters.listener.CritterListener;




public class CritterEventProcessorImp {
	
	ArrayList<CritterListener> critterListeners = new ArrayList<CritterListener>();
	
	public void addCritterListener(CritterListener listener) 
	{
	     critterListeners.add(listener);
	}
	public void removeCritterListener(CritterListener listener) 
	{
		if(critterListeners.contains(listener)){
			critterListeners.remove(critterListeners.indexOf(listener));
		}
	}
	
	public void fireDeathEvent(Critter cadaver) {
		for (CritterListener cl : critterListeners) {
			cl.deathEvent(cadaver);
		}
	}
	
	public void fireBirthEvent(Critter infant){
		for (CritterListener cl : critterListeners) {
			cl.birthEvent(infant);
		}
	}
	
	public void fireHuntEvent(Critter predator, Critter prey){
		for (CritterListener cl : critterListeners) {
			cl.huntEvent(predator, prey);
		}
	}

}
